package com.example.jdk8.optional;

import com.example.jdk8.functionalinterface.Person;

import java.util.Optional;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: ZhangLiang
 * @Date: 2021/07/09/16:58
 * @Description:
 */
public class OptionalDemo {



//    减少 Optional.ofNullable 的使用
    public static String getName(Person person){
        return Optional.ofNullable(person)
                .map(person1 -> person1.getFirstName())
                .orElse("未定义");
    }
}


//    //of（）：为非null的值创建一个Optional
//    Optional<String> optional = Optional.of("bam");
//// isPresent（）： 如果值存在返回true，否则返回false
//optional.isPresent();           // true
////get()：如果Optional有值则将其返回，否则抛出NoSuchElementException
//        optional.get();                 // "bam"
////orElse（）：如果有值则将其返回，否则返回指定的其它值
//        optional.orElse("fallback");    // "bam"
////ifPresent（）：如果Optional实例有值则为其调用consumer，否则不做处理
//        optional.ifPresent((s) -> System.out.println(s.charAt(0)));     // "b"
